package org.jcodec.codecs.h264.decode;

/**
 * This class is part of JCodec ( www.jcodec.org ) This software is distributed
 * under FreeBSD License
 * 
 * This code is borrowed from ffmpeg/libavcodec/h264_cabac.c
 * 
 * @author The JCodec project
 * 
 */
public class CABACContst {

    public static int[] cabac_context_init_I_A = { 20, 2, 3, 20, 2, 3, -28, -23, -6, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, -9, 4, 0, -7, 13, 3, 0, 1, 0, -17, -13, 0, -7, -21, -27, -31, -24, -18, -27, -21,
            -30, -17, -12, -16, -11, -12, -2, -15, -13, -3, -8, -10, -30, -1, -6, -7, -20, -4, -5, -7, -22, -7, -11,
            -3, -5, -4, -4, -12, -7, -7, 8, 5, -2, 1, 0, -2, 1, 7, 10, 0, 11, 1, 0, 5, 31, 1, 7, 28, 16, 14, -13, -15,
            -13, -13, -12, -10, -16, -10, -7, -13, -19, 1, 0, -5, 18, -8, -15, 0, -4, 2, -11, -3, 15, -13, 0, 0, 21,
            -15, 9, 16, 0, 12, 24, 15, 8, 13, 15, 13, 10, 12, 6, 20, 15, 4, 1, 0, 7, 12, 11, 15, 11, 13, 16, 12, 10,
            30, 18, 10, 17, 17, 0, 26, 22, 26, 30, 28, 33, 37, 33, 40, 38, 33, 40, 41, 38, 41, 30, 27, 26, 37, 35, 38,
            38, 37, 38, 42, 35, 39, 14, 27, 21, 12, 2, -3, -6, -5, -3, -2, 0, 1, -2, -1, -9, -5, -5, -3, -2, 0, -16,
            -8, -10, -6, -10, -12, -15, -10, -6, -4, -12, -8, -7, -9, -17, -11, -20, -11, -6, -4, -13, -13, -11, -19,
            -8, -5, -4, -2, -3, -13, -10, -12, -13, -14, 0, -6, -6, -8, 0, -1, 0, -2, -2, -5, -3, -4, -9, -1, 0, 3, 10,
            -7, 15, 14, 16, 12, 1, 20, 18, 5, 1, 10, 17, 9, -12, -11, -16, -7, -8, -7, -9, -13, 4, -3, -3, -6, 10, -1,
            -1, -7, -14, 2, 0, -5, 0, -11, 1, 0, -14, 3, 4, -1, -13, 11, 5, 12, 15, 6, 7, 12, 18, 13, 13, 15, 12, 13,
            15, 14, 14, 17, 17, 24, 21, 25, 31, 22, 19, 14, 10, 7, -2, -4, -3, 9, -12, 36, 36, 32, 37, 44, 34, 34, 40,
            33, 35, 33, 38, 33, 23, 13, 29, 26, 22, 31, 35, 34, 34, 36, 34, 32, 35, 34, 39, 30, 34, 29, 19, 31, 31, 25,
            -17, -20, -18, -11, -15, -14, -26, -15, -14, 0, -14, -24, -23, -24, -11, 23, 26, 40, 49, 44, 45, 44, 33,
            19, -3, -1, 1, 1, 0, -2, 0, 1, 0, -9, -14, -13, -15, -12, -18, -10, -9, -14, -10, -10, -10, -5, -9, -5, 2,
            21, 24, 28, 28, 29, 29, 35, 29, 14, -17, -12, -16, -11, -12, -2, -15, -13, -3, -8, -10, -30, -17, -12, -16,
            -11, -12, -2, -15, -13, -3, -8, -10, -30, -7, -11, -3, -5, -4, -4, -12, -7, -7, 8, 5, -2, 1, 0, -2, 1, 7,
            10, 0, 11, 1, 0, 5, 31, 1, 7, 28, 16, 14, -13, -15, -13, -13, -12, -10, -16, -10, -7, -13, -19, 1, 0, -5,
            18, -7, -11, -3, -5, -4, -4, -12, -7, -7, 8, 5, -2, 1, 0, -2, 1, 7, 10, 0, 11, 1, 0, 5, 31, 1, 7, 28, 16,
            14, -13, -15, -13, -13, -12, -10, -16, -10, -7, -13, -19, 1, 0, -5, 18, 24, 15, 8, 13, 15, 13, 10, 12, 6,
            20, 15, 4, 1, 0, 7, 12, 11, 15, 11, 13, 16, 12, 10, 30, 18, 10, 17, 17, 0, 26, 22, 26, 30, 28, 33, 37, 33,
            40, 38, 33, 40, 41, 38, 41, 24, 15, 8, 13, 15, 13, 10, 12, 6, 20, 15, 4, 1, 0, 7, 12, 11, 15, 11, 13, 16,
            12, 10, 30, 18, 10, 17, 17, 0, 26, 22, 26, 30, 28, 33, 37, 33, 40, 38, 33, 40, 41, 38, 41, -17, -20, -18,
            -11, -15, -14, -26, -15, -14, 0, -14, -24, -23, -24, -11, -14, -13, -15, -12, -18, -10, -9, -14, -10, -10,
            -10, -5, -9, -5, 2, 23, 26, 40, 49, 44, 45, 44, 33, 19, 21, 24, 28, 28, 29, 29, 35, 29, 14, -3, -1, 1, 1,
            0, -2, 0, 1, 0, -9, -17, -20, -18, -11, -15, -14, -26, -15, -14, 0, -14, -24, -23, -24, -11, -14, -13, -15,
            -12, -18, -10, -9, -14, -10, -10, -10, -5, -9, -5, 2, 23, 26, 40, 49, 44, 45, 44, 33, 19, 21, 24, 28, 28,
            29, 29, 35, 29, 14, -3, -1, 1, 1, 0, -2, 0, 1, 0, -9, -6, -6, -8, 0, -1, 0, -2, -2, -5, -3, -4, -9, -1, 0,
            3, 10, -7, 15, 14, 16, 12, 1, 20, 18, 5, 1, 10, 17, 9, -12, -11, -16, -7, -8, -7, -9, -13, 4, -3, -3, -6,
            10, -1, -1, -6, -6, -8, 0, -1, 0, -2, -2, -5, -3, -4, -9, -1, 0, 3, 10, -7, 15, 14, 16, 12, 1, 20, 18, 5,
            1, 10, 17, 9, -12, -11, -16, -7, -8, -7, -9, -13, 4, -3, -3, -6, 10, -1, -1, 15, 6, 7, 12, 18, 13, 13, 15,
            12, 13, 15, 14, 14, 17, 17, 24, 21, 25, 31, 22, 19, 14, 10, 7, -2, -4, -3, 9, -12, 36, 36, 32, 37, 44, 34,
            34, 40, 33, 35, 33, 38, 33, 23, 13, 15, 6, 7, 12, 18, 13, 13, 15, 12, 13, 15, 14, 14, 17, 17, 24, 21, 25,
            31, 22, 19, 14, 10, 7, -2, -4, -3, 9, -12, 36, 36, 32, 37, 44, 34, 34, 40, 33, 35, 33, 38, 33, 23, 13, -3,
            -6, -5, -3, -2, 0, 1, -2, -1, -9, -5, -5, -3, -2, 0, -16, -8, -10, -6, -10, -12, -15, -10, -6, -4, -12, -8,
            -7, -9, -17, -3, -6, -5, -3, -2, 0, 1, -2, -1, -9, -5, -5, -3, -2, 0, -16, -8, -10, -6, -10, -12, -15, -10,
            -6, -4, -12, -8, -7, -9, -17, -3, -8, -10, -30, -3, -8, -10, -30, -3, -8, -10, -30 };

    public static int[] cabac_context_init_I_B = { -15, 54, 74, -15, 54, 74, 127, 104, 53, 54, 51, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 41, 63, 63, 63, 83, 86, 97, 72, 41, 62, 11, 55, 69, 127, 102, 82, 74, 107, 127, 127, 127,
            95, 127, 114, 127, 123, 115, 122, 115, 63, 68, 84, 104, 70, 93, 90, 127, 74, 97, 91, 127, 56, 82, 76, 125,
            93, 87, 77, 71, 63, 68, 84, 62, 65, 61, 56, 66, 64, 61, 78, 50, 52, 35, 44, 38, 45, 46, 44, 17, 51, 50, 19,
            33, 62, 108, 100, 101, 91, 94, 88, 84, 86, 83, 87, 94, 70, 72, 74, 59, 102, 100, 95, 75, 72, 75, 71, 46,
            69, 62, 65, 37, 72, 57, 54, 62, 72, 0, 9, 25, 18, 9, 19, 37, 18, 29, 33, 30, 45, 58, 62, 61, 38, 45, 39,
            42, 44, 45, 41, 49, 34, 42, 55, 51, 46, 89, -19, -17, -17, -25, -20, -23, -27, -23, -28, -17, -11, -15, -6,
            1, 17, -6, 3, 22, -16, -4, -8, -3, 3, 5, 0, 16, 22, 48, 37, 60, 68, 97, 71, 42, 50, 54, 62, 58, 63, 72, 74,
            91, 67, 27, 39, 44, 46, 64, 68, 78, 77, 86, 92, 55, 60, 62, 65, 73, 76, 80, 88, 110, 97, 84, 79, 73, 74,
            86, 96, 97, 117, 78, 33, 48, 53, 62, 71, 79, 86, 90, 97, 0, 93, 84, 79, 66, 71, 62, 60, 59, 75, 62, 58, 66,
            79, 71, 68, 44, 62, 36, 40, 27, 29, 44, 36, 32, 42, 48, 62, 46, 64, 104, 97, 96, 88, 85, 85, 85, 88, 66,
            77, 76, 76, 58, 76, 83, 99, 95, 95, 76, 74, 70, 75, 68, 65, 73, 62, 62, 68, 75, 55, 64, 70, 6, 19, 16, 14,
            13, 11, 15, 16, 23, 23, 20, 26, 44, 40, 47, 17, 21, 22, 27, 29, 35, 50, 57, 63, 77, 82, 94, 69, 109, -35,
            -34, -26, -30, -32, -18, -15, -15, -7, -5, 0, 2, 13, 35, 58, -3, 0, 30, -7, -15, -3, 3, -1, 5, 11, 5, 12,
            11, 29, 26, 39, 66, 21, 31, 50, 120, 112, 114, 85, 92, 89, 71, 81, 80, 68, 70, 56, 68, 50, 74, -13, -13,
            -15, -14, 3, 6, 34, 54, 82, 75, 23, 34, 43, 54, 55, 61, 64, 68, 92, 106, 97, 90, 90, 88, 73, 79, 86, 73,
            70, 69, 66, 64, 58, 59, -10, -11, -8, -1, 3, 9, 20, 36, 67, 123, 115, 122, 115, 63, 68, 84, 104, 70, 93,
            90, 127, 123, 115, 122, 115, 63, 68, 84, 104, 70, 93, 90, 127, 93, 87, 77, 71, 63, 68, 84, 62, 65, 61, 56,
            66, 64, 61, 78, 50, 52, 35, 44, 38, 45, 46, 44, 17, 51, 50, 19, 33, 62, 108, 100, 101, 91, 94, 88, 84, 86,
            83, 87, 94, 70, 72, 74, 59, 93, 87, 77, 71, 63, 68, 84, 62, 65, 61, 56, 66, 64, 61, 78, 50, 52, 35, 44, 38,
            45, 46, 44, 17, 51, 50, 19, 33, 62, 108, 100, 101, 91, 94, 88, 84, 86, 83, 87, 94, 70, 72, 74, 59, 0, 9,
            25, 18, 9, 19, 37, 18, 29, 33, 30, 45, 58, 62, 61, 38, 45, 39, 42, 44, 45, 41, 49, 34, 42, 55, 51, 46, 89,
            -19, -17, -17, -25, -20, -23, -27, -23, -28, -17, -11, -15, -6, 1, 17, 0, 9, 25, 18, 9, 19, 37, 18, 29, 33,
            30, 45, 58, 62, 61, 38, 45, 39, 42, 44, 45, 41, 49, 34, 42, 55, 51, 46, 89, -19, -17, -17, -25, -20, -23,
            -27, -23, -28, -17, -11, -15, -6, 1, 17, 120, 112, 114, 85, 92, 89, 71, 81, 80, 68, 70, 56, 68, 50, 74,
            106, 97, 90, 90, 88, 73, 79, 86, 73, 70, 69, 66, 64, 58, 59, -13, -13, -15, -14, 3, 6, 34, 54, 82, -10,
            -11, -8, -1, 3, 9, 20, 36, 67, 75, 23, 34, 43, 54, 55, 61, 64, 68, 92, 120, 112, 114, 85, 92, 89, 71, 81,
            80, 68, 70, 56, 68, 50, 74, 106, 97, 90, 90, 88, 73, 79, 86, 73, 70, 69, 66, 64, 58, 59, -13, -13, -15,
            -14, 3, 6, 34, 54, 82, -10, -11, -8, -1, 3, 9, 20, 36, 67, 75, 23, 34, 43, 54, 55, 61, 64, 68, 92, 93, 84,
            79, 66, 71, 62, 60, 59, 75, 62, 58, 66, 79, 71, 68, 44, 62, 36, 40, 27, 29, 44, 36, 32, 42, 48, 62, 46, 64,
            104, 97, 96, 88, 85, 85, 85, 88, 66, 77, 76, 76, 58, 76, 83, 93, 84, 79, 66, 71, 62, 60, 59, 75, 62, 58,
            66, 79, 71, 68, 44, 62, 36, 40, 27, 29, 44, 36, 32, 42, 48, 62, 46, 64, 104, 97, 96, 88, 85, 85, 85, 88,
            66, 77, 76, 76, 58, 76, 83, 6, 19, 16, 14, 13, 11, 15, 16, 23, 23, 20, 26, 44, 40, 47, 17, 21, 22, 27, 29,
            35, 50, 57, 63, 77, 82, 94, 69, 109, -35, -34, -26, -30, -32, -18, -15, -15, -7, -5, 0, 2, 13, 35, 58, 6,
            19, 16, 14, 13, 11, 15, 16, 23, 23, 20, 26, 44, 40, 47, 17, 21, 22, 27, 29, 35, 50, 57, 63, 77, 82, 94, 69,
            109, -35, -34, -26, -30, -32, -18, -15, -15, -7, -5, 0, 2, 13, 35, 58, 71, 42, 50, 54, 62, 58, 63, 72, 74,
            91, 67, 27, 39, 44, 46, 64, 68, 78, 77, 86, 92, 55, 60, 62, 65, 73, 76, 80, 88, 110, 71, 42, 50, 54, 62,
            58, 63, 72, 74, 91, 67, 27, 39, 44, 46, 64, 68, 78, 77, 86, 92, 55, 60, 62, 65, 73, 76, 80, 88, 110, 70,
            93, 90, 127, 70, 93, 90, 127, 70, 93, 90, 127 };

    public static int[][] cabac_context_init_PB_A = {
            { 20, 2, 3, 20, 2, 3, -28, -23, -6, -1, 7, 23, 23, 21, 1, 0, -37, 5, -13, -11, 1, 12, -4, 17, 18, 9, 29,
                    26, 16, 9, -46, -20, 1, -13, -11, 1, -6, -17, -6, 9, -3, -6, -11, 6, 7, -5, 2, 0, -3, -10, 5, 4,
                    -3, 0, -7, -5, -4, -5, -7, 1, 0, 0, 0, 0, -9, 4, 0, -7, 13, 3, 0, -4, -3, -27, -28, -25, -23, -28,
                    -20, -16, -22, -21, -18, -13, -29, -7, -5, -7, -13, -3, -1, -1, -9, -3, -9, -8, -23, 5, 6, 6, 6,
                    -1, 0, -4, -8, -2, -6, -1, -7, 2, 5, -3, 1, 6, -4, 1, -4, 0, 2, -2, 11, 4, 1, 11, 18, 12, 13, 13,
                    -10, -7, -2, 13, 9, -7, 9, 2, 5, -2, 0, 0, -13, -5, -1, 4, -6, 4, 14, 4, 13, 3, 1, 9, 7, 16, 5, 4,
                    11, -5, -1, 0, 22, 5, 14, -1, 0, 9, 11, 2, 3, 0, 0, 2, 2, 0, 4, 2, 6, 0, 3, 2, 4, 6, 6, 7, 6, 6,
                    11, 14, 8, -1, 7, -3, 15, 22, -1, 25, 30, 28, 28, 32, 34, 30, 30, 32, 31, 26, 26, 37, 28, 17, 1, 5,
                    9, 16, 18, 18, 22, 24, 23, 18, 20, 11, 9, 9, -1, -2, -9, -6, -2, 0, 0, -3, -2, -4, -4, -8, -17, -9,
                    3, 0, 0, 0, -6, -7, -12, -11, -30, 1, -3, -1, 1, 2, -6, 0, 0, -3, -10, 0, -4, 5, 7, 1, -2, -3, -3,
                    -11, 0, 8, 10, 14, 13, 2, 0, -3, -6, -8, 0, -13, -16, -10, -21, -18, -14, -22, -21, -18, -21, -23,
                    -26, -10, -12, -5, -9, -22, -5, 9, -4, -10, -1, 7, 9, 5, 12, 15, 18, 17, 10, 7, -1, 7, 8, 9, 6, 2,
                    13, 10, 6, 5, 13, 4, 6, -2, -2, 6, 10, 9, 12, 3, 14, 10, -3, 13, 17, 7, 7, 13, 10, 26, 14, 11, 9,
                    18, 21, 23, 32, 32, 34, 39, 42, 41, 46, 38, 21, 45, 53, 48, 65, 43, 39, 30, 18, 20, 0, -14, -5,
                    -19, -35, 27, 28, 31, 27, 34, 30, 24, 33, 22, 26, 21, 26, 23, 16, 14, 8, 6, 17, 21, 23, 26, 27, 28,
                    28, 23, 24, 28, 23, 19, 22, 22, 11, 12, 11, 14, -4, -7, -5, -9, -8, -10, -19, -12, -16, -15, -20,
                    -19, -16, -22, -20, 9, 26, 33, 39, 41, 45, 49, 45, 36, -6, -7, -7, -8, -5, -12, -6, -5, -8, -8, -5,
                    -6, -10, -7, -17, -18, -4, -10, -9, -9, -1, -8, -14, 0, 2, 21, 33, 39, 46, 51, 60, 61, 55, 42, -7,
                    -5, -7, -13, -3, -1, -1, -9, -3, -9, -8, -23, -7, -5, -7, -13, -3, -1, -1, -9, -3, -9, -8, -23, -2,
                    -6, -1, -7, 2, 5, -3, 1, 6, -4, 1, -4, 0, 2, -2, 11, 4, 1, 11, 18, 12, 13, 13, -10, -7, -2, 13, 9,
                    -7, 9, 2, 5, -2, 0, 0, -13, -5, -1, 4, -6, 4, 14, 4, 13, -2, -6, -1, -7, 2, 5, -3, 1, 6, -4, 1, -4,
                    0, 2, -2, 11, 4, 1, 11, 18, 12, 13, 13, -10, -7, -2, 13, 9, -7, 9, 2, 5, -2, 0, 0, -13, -5, -1, 4,
                    -6, 4, 14, 4, 13, 11, 2, 3, 0, 0, 2, 2, 0, 4, 2, 6, 0, 3, 2, 4, 6, 6, 7, 6, 6, 11, 14, 8, -1, 7,
                    -3, 15, 22, -1, 25, 30, 28, 28, 32, 34, 30, 30, 32, 31, 26, 26, 37, 28, 17, 11, 2, 3, 0, 0, 2, 2,
                    0, 4, 2, 6, 0, 3, 2, 4, 6, 6, 7, 6, 6, 11, 14, 8, -1, 7, -3, 15, 22, -1, 25, 30, 28, 28, 32, 34,
                    30, 30, 32, 31, 26, 26, 37, 28, 17, -4, -7, -5, -9, -8, -10, -19, -12, -16, -15, -20, -19, -16,
                    -22, -20, -5, -6, -10, -7, -17, -18, -4, -10, -9, -9, -1, -8, -14, 0, 2, 9, 26, 33, 39, 41, 45, 49,
                    45, 36, 21, 33, 39, 46, 51, 60, 61, 55, 42, -6, -7, -7, -8, -5, -12, -6, -5, -8, -8, -4, -7, -5,
                    -9, -8, -10, -19, -12, -16, -15, -20, -19, -16, -22, -20, -5, -6, -10, -7, -17, -18, -4, -10, -9,
                    -9, -1, -8, -14, 0, 2, 9, 26, 33, 39, 41, 45, 49, 45, 36, 21, 33, 39, 46, 51, 60, 61, 55, 42, -6,
                    -7, -7, -8, -5, -12, -6, -5, -8, -8, -13, -16, -10, -21, -18, -14, -22, -21, -18, -21, -23, -26,
                    -10, -12, -5, -9, -22, -5, 9, -4, -10, -1, 7, 9, 5, 12, 15, 18, 17, 10, 7, -1, 7, 8, 9, 6, 2, 13,
                    10, 6, 5, 13, 4, 6, -13, -16, -10, -21, -18, -14, -22, -21, -18, -21, -23, -26, -10, -12, -5, -9,
                    -22, -5, 9, -4, -10, -1, 7, 9, 5, 12, 15, 18, 17, 10, 7, -1, 7, 8, 9, 6, 2, 13, 10, 6, 5, 13, 4, 6,
                    14, 11, 9, 18, 21, 23, 32, 32, 34, 39, 42, 41, 46, 38, 21, 45, 53, 48, 65, 43, 39, 30, 18, 20, 0,
                    -14, -5, -19, -35, 27, 28, 31, 27, 34, 30, 24, 33, 22, 26, 21, 26, 23, 16, 14, 14, 11, 9, 18, 21,
                    23, 32, 32, 34, 39, 42, 41, 46, 38, 21, 45, 53, 48, 65, 43, 39, 30, 18, 20, 0, -14, -5, -19, -35,
                    27, 28, 31, 27, 34, 30, 24, 33, 22, 26, 21, 26, 23, 16, 14, -6, -2, 0, 0, -3, -2, -4, -4, -8, -17,
                    -9, 3, 0, 0, 0, -6, -7, -12, -11, -30, 1, -3, -1, 1, 2, -6, 0, 0, -3, -10, -6, -2, 0, 0, -3, -2,
                    -4, -4, -8, -17, -9, 3, 0, 0, 0, -6, -7, -12, -11, -30, 1, -3, -1, 1, 2, -6, 0, 0, -3, -10, -3, -9,
                    -8, -23, -3, -9, -8, -23, -3, -9, -8, -23 },

            { 20, 2, 3, 20, 2, 3, -28, -23, -6, -1, 7, 22, 34, 16, -2, 4, -29, 2, -6, -13, 5, 9, -3, 10, 26, 19, 40,
                    57, 41, 26, -45, -15, -4, -6, -13, 5, 6, -13, 0, 8, -2, -5, -10, 2, 2, -3, -3, 1, -3, -6, 0, -3,
                    -7, -5, -1, -1, 1, -2, -5, 0, 0, 0, 0, 0, -9, 4, 0, -7, 13, 3, 13, 7, 2, -39, -18, -17, -26, -35,
                    -24, -23, -27, -24, -21, -18, -36, 0, -5, -7, -4, 0, 0, -15, -35, -2, -12, -9, -31, 3, 7, 7, 8, -3,
                    0, -7, -9, -13, -13, -9, -14, -8, -12, -23, -24, -10, -20, -17, -78, -70, -50, -46, -4, -5, -4, -8,
                    2, -1, -7, -6, -8, -34, -3, 32, 30, -44, 0, -5, 0, -1, -3, -8, -25, -14, -5, 5, 2, 0, -9, -11, 18,
                    -4, 0, 7, 9, 18, 9, 5, 9, 0, 0, 2, 19, -4, 15, 12, 9, 0, 4, 10, 10, 33, 52, 18, 28, 35, 38, 34, 39,
                    32, 102, 0, 56, 33, 29, 37, 51, 39, 52, 69, 67, 44, 32, 55, 32, 0, 27, 33, 34, 36, 38, 38, 34, 35,
                    34, 32, 37, 35, 30, 28, 26, 29, 0, 2, 8, 14, 18, 17, 21, 17, 20, 18, 27, 16, 7, 16, 11, 10, -10,
                    -23, -15, -7, 0, -5, -11, -9, -9, -10, -34, -21, -3, -5, -7, -11, -15, -17, -25, -25, -28, -11,
                    -10, -10, -10, -9, -16, -7, -4, -5, -9, 2, -9, 1, 11, 5, -2, -2, 0, -8, 3, 7, 10, 17, 16, 3, -1,
                    -5, -1, -4, 0, -21, -23, -20, -26, -25, -17, -27, -27, -17, -26, -27, -33, -10, -14, -8, -17, -28,
                    -6, -2, -4, -9, -8, -1, 5, 1, 9, 0, 1, 7, -7, -6, -16, -2, 2, -6, -3, 2, -3, -3, 0, 9, -1, -2, -2,
                    -1, -9, 14, 16, 0, 18, 11, 12, 10, 2, 12, 13, 0, 3, 19, 3, 18, 19, 18, 14, 26, 31, 33, 33, 37, 39,
                    42, 47, 45, 49, 41, 32, 69, 63, 66, 77, 54, 52, 41, 36, 40, 30, 28, 23, 12, 11, 37, 39, 40, 38, 46,
                    42, 40, 49, 38, 40, 38, 46, 31, 29, 25, 12, 11, 26, 22, 23, 27, 33, 26, 30, 27, 18, 25, 18, 12, 21,
                    14, 11, 25, 21, 21, -5, -6, -10, -7, -17, -18, -4, -10, -9, -9, -1, -8, -14, 0, 2, 17, 32, 42, 49,
                    53, 64, 68, 66, 47, -5, 0, -1, -2, -2, -9, -6, -4, -4, -7, -3, -3, -7, -6, -12, -14, -3, -6, -5,
                    -5, 0, -4, -9, 1, 2, 17, 32, 42, 49, 53, 64, 68, 66, 47, 0, -5, -7, -4, 0, 0, -15, -35, -2, -12,
                    -9, -31, 0, -5, -7, -4, 0, 0, -15, -35, -2, -12, -9, -31, -13, -13, -9, -14, -8, -12, -23, -24,
                    -10, -20, -17, -78, -70, -50, -46, -4, -5, -4, -8, 2, -1, -7, -6, -8, -34, -3, 32, 30, -44, 0, -5,
                    0, -1, -3, -8, -25, -14, -5, 5, 2, 0, -9, -11, 18, -13, -13, -9, -14, -8, -12, -23, -24, -10, -20,
                    -17, -78, -70, -50, -46, -4, -5, -4, -8, 2, -1, -7, -6, -8, -34, -3, 32, 30, -44, 0, -5, 0, -1, -3,
                    -8, -25, -14, -5, 5, 2, 0, -9, -11, 18, 4, 10, 10, 33, 52, 18, 28, 35, 38, 34, 39, 32, 102, 0, 56,
                    33, 29, 37, 51, 39, 52, 69, 67, 44, 32, 55, 32, 0, 27, 33, 34, 36, 38, 38, 34, 35, 34, 32, 37, 35,
                    30, 28, 26, 29, 4, 10, 10, 33, 52, 18, 28, 35, 38, 34, 39, 32, 102, 0, 56, 33, 29, 37, 51, 39, 52,
                    69, 67, 44, 32, 55, 32, 0, 27, 33, 34, 36, 38, 38, 34, 35, 34, 32, 37, 35, 30, 28, 26, 29, -5, -6,
                    -10, -7, -17, -18, -4, -10, -9, -9, -1, -8, -14, 0, 2, -3, -3, -7, -6, -12, -14, -3, -6, -5, -5, 0,
                    -4, -9, 1, 2, 17, 32, 42, 49, 53, 64, 68, 66, 47, 17, 32, 42, 49, 53, 64, 68, 66, 47, -5, 0, -1,
                    -2, -2, -9, -6, -4, -4, -7, -5, -6, -10, -7, -17, -18, -4, -10, -9, -9, -1, -8, -14, 0, 2, -3, -3,
                    -7, -6, -12, -14, -3, -6, -5, -5, 0, -4, -9, 1, 2, 17, 32, 42, 49, 53, 64, 68, 66, 47, 17, 32, 42,
                    49, 53, 64, 68, 66, 47, -5, 0, -1, -2, -2, -9, -6, -4, -4, -7, -21, -23, -20, -26, -25, -17, -27,
                    -27, -17, -26, -27, -33, -10, -14, -8, -17, -28, -6, -2, -4, -9, -8, -1, 5, 1, 9, 0, 1, 7, -7, -6,
                    -16, -2, 2, -6, -3, 2, -3, -3, 0, 9, -1, -2, -2, -21, -23, -20, -26, -25, -17, -27, -27, -17, -26,
                    -27, -33, -10, -14, -8, -17, -28, -6, -2, -4, -9, -8, -1, 5, 1, 9, 0, 1, 7, -7, -6, -16, -2, 2, -6,
                    -3, 2, -3, -3, 0, 9, -1, -2, -2, 19, 18, 14, 26, 31, 33, 33, 37, 39, 42, 47, 45, 49, 41, 32, 69,
                    63, 66, 77, 54, 52, 41, 36, 40, 30, 28, 23, 12, 11, 37, 39, 40, 38, 46, 42, 40, 49, 38, 40, 38, 46,
                    31, 29, 25, 19, 18, 14, 26, 31, 33, 33, 37, 39, 42, 47, 45, 49, 41, 32, 69, 63, 66, 77, 54, 52, 41,
                    36, 40, 30, 28, 23, 12, 11, 37, 39, 40, 38, 46, 42, 40, 49, 38, 40, 38, 46, 31, 29, 25, -23, -15,
                    -7, 0, -5, -11, -9, -9, -10, -34, -21, -3, -5, -7, -11, -15, -17, -25, -25, -28, -11, -10, -10,
                    -10, -9, -16, -7, -4, -5, -9, -23, -15, -7, 0, -5, -11, -9, -9, -10, -34, -21, -3, -5, -7, -11,
                    -15, -17, -25, -25, -28, -11, -10, -10, -10, -9, -16, -7, -4, -5, -9, -2, -12, -9, -31, -2, -12,
                    -9, -31, -2, -12, -9, -31 },
            { 20, 2, 3, 20, 2, 3, -28, -23, -6, -1, 7, 29, 25, 14, -10, -3, -27, 26, -4, -24, 5, 6, -17, 14, 20, 20,
                    29, 54, 37, 12, -32, -22, -2, -4, -24, 5, -6, -14, -6, 4, -11, -15, -21, 19, 20, 4, 6, 1, -5, -13,
                    5, 6, -3, -1, 3, -4, -2, -12, -7, 1, 0, 0, 0, 0, -9, 4, 0, -7, 13, 3, 7, -9, -20, -36, -17, -14,
                    -25, -25, -12, -17, -31, -14, -18, -13, -37, 11, 5, 2, 5, -6, 4, -14, -37, -5, -11, -11, -30, 0,
                    -2, 0, -4, -6, 3, -8, -13, -4, -12, -5, -3, -4, -8, -16, -9, -1, 5, 4, -4, -2, 2, -1, -4, -1, 0,
                    -7, -4, -6, -3, -6, 8, -9, -11, 9, 0, -5, 1, -15, -5, -8, -21, -21, -13, -25, -29, 9, 17, -8, -5,
                    -2, 13, 3, -7, 8, -10, 3, -3, -20, 0, 1, -3, -21, 16, -23, 17, 44, 50, -22, 4, 0, 7, 11, 8, 6, 7,
                    3, 8, 13, 13, 4, 3, 2, 6, 8, 11, 14, 7, 4, 4, 13, 9, 19, 10, 12, 0, 20, 8, 35, 33, 28, 24, 27, 34,
                    52, 39, 19, 31, 36, 24, 34, 30, 22, 20, 19, 27, 19, 15, 15, 21, 25, 30, 31, 27, 24, 0, 14, 15, 26,
                    -24, -24, -22, -9, 0, 0, -14, -13, -13, -11, -29, -21, -14, -12, -11, -10, -21, -16, -23, -15, -37,
                    -10, -8, -8, -8, -7, -14, -10, -9, -12, -18, -4, -22, -16, -2, 1, -13, -9, -4, -13, -13, -6, -13,
                    -6, -2, -16, -10, -13, -9, -10, 0, -22, -25, -25, -27, -19, -23, -25, -26, -24, -28, -31, -37, -10,
                    -15, -10, -13, -50, -5, 17, -5, -13, -12, -2, 0, -1, 4, -7, 5, 15, 1, 0, -10, 1, 0, 2, 0, -5, 7, 5,
                    2, 14, 15, 5, 2, -2, -18, 12, 5, -12, 11, 5, 0, 2, -6, 5, 7, -6, -11, -2, -2, 25, 17, 16, 17, 27,
                    37, 41, 42, 48, 39, 46, 52, 46, 52, 43, 32, 61, 56, 62, 81, 45, 35, 28, 34, 39, 30, 20, 18, 15, 0,
                    36, 37, 37, 32, 34, 29, 24, 34, 31, 35, 31, 33, 36, 27, 21, 18, 19, 36, 24, 27, 24, 31, 22, 22, 16,
                    15, 14, 3, -16, 21, 22, 25, 21, 19, 17, -3, -8, -9, -10, -18, -12, -11, -5, -17, -14, -16, -8, -14,
                    -9, -11, 9, 30, 31, 33, 33, 31, 37, 31, 20, -9, -7, -8, -11, -10, -12, -8, -9, -6, -10, -3, -8, -9,
                    -10, -18, -12, -11, -5, -17, -14, -16, -8, -14, -9, -11, 9, 30, 31, 33, 33, 31, 37, 31, 20, 11, 5,
                    2, 5, -6, 4, -14, -37, -5, -11, -11, -30, 11, 5, 2, 5, -6, 4, -14, -37, -5, -11, -11, -30, -4, -12,
                    -5, -3, -4, -8, -16, -9, -1, 5, 4, -4, -2, 2, -1, -4, -1, 0, -7, -4, -6, -3, -6, 8, -9, -11, 9, 0,
                    -5, 1, -15, -5, -8, -21, -21, -13, -25, -29, 9, 17, -8, -5, -2, 13, -4, -12, -5, -3, -4, -8, -16,
                    -9, -1, 5, 4, -4, -2, 2, -1, -4, -1, 0, -7, -4, -6, -3, -6, 8, -9, -11, 9, 0, -5, 1, -15, -5, -8,
                    -21, -21, -13, -25, -29, 9, 17, -8, -5, -2, 13, 4, 0, 7, 11, 8, 6, 7, 3, 8, 13, 13, 4, 3, 2, 6, 8,
                    11, 14, 7, 4, 4, 13, 9, 19, 10, 12, 0, 20, 8, 35, 33, 28, 24, 27, 34, 52, 39, 19, 31, 36, 24, 34,
                    30, 22, 4, 0, 7, 11, 8, 6, 7, 3, 8, 13, 13, 4, 3, 2, 6, 8, 11, 14, 7, 4, 4, 13, 9, 19, 10, 12, 0,
                    20, 8, 35, 33, 28, 24, 27, 34, 52, 39, 19, 31, 36, 24, 34, 30, 22, -3, -8, -9, -10, -18, -12, -11,
                    -5, -17, -14, -16, -8, -14, -9, -11, -3, -8, -9, -10, -18, -12, -11, -5, -17, -14, -16, -8, -14,
                    -9, -11, 9, 30, 31, 33, 33, 31, 37, 31, 20, 9, 30, 31, 33, 33, 31, 37, 31, 20, -9, -7, -8, -11,
                    -10, -12, -8, -9, -6, -10, -3, -8, -9, -10, -18, -12, -11, -5, -17, -14, -16, -8, -14, -9, -11, -3,
                    -8, -9, -10, -18, -12, -11, -5, -17, -14, -16, -8, -14, -9, -11, 9, 30, 31, 33, 33, 31, 37, 31, 20,
                    9, 30, 31, 33, 33, 31, 37, 31, 20, -9, -7, -8, -11, -10, -12, -8, -9, -6, -10, -22, -25, -25, -27,
                    -19, -23, -25, -26, -24, -28, -31, -37, -10, -15, -10, -13, -50, -5, 17, -5, -13, -12, -2, 0, -1,
                    4, -7, 5, 15, 1, 0, -10, 1, 0, 2, 0, -5, 7, 5, 2, 14, 15, 5, 2, -22, -25, -25, -27, -19, -23, -25,
                    -26, -24, -28, -31, -37, -10, -15, -10, -13, -50, -5, 17, -5, -13, -12, -2, 0, -1, 4, -7, 5, 15, 1,
                    0, -10, 1, 0, 2, 0, -5, 7, 5, 2, 14, 15, 5, 2, 17, 16, 17, 27, 37, 41, 42, 48, 39, 46, 52, 46, 52,
                    43, 32, 61, 56, 62, 81, 45, 35, 28, 34, 39, 30, 20, 18, 15, 0, 36, 37, 37, 32, 34, 29, 24, 34, 31,
                    35, 31, 33, 36, 27, 21, 17, 16, 17, 27, 37, 41, 42, 48, 39, 46, 52, 46, 52, 43, 32, 61, 56, 62, 81,
                    45, 35, 28, 34, 39, 30, 20, 18, 15, 0, 36, 37, 37, 32, 34, 29, 24, 34, 31, 35, 31, 33, 36, 27, 21,
                    -24, -22, -9, 0, 0, -14, -13, -13, -11, -29, -21, -14, -12, -11, -10, -21, -16, -23, -15, -37, -10,
                    -8, -8, -8, -7, -14, -10, -9, -12, -18, -24, -22, -9, 0, 0, -14, -13, -13, -11, -29, -21, -14, -12,
                    -11, -10, -21, -16, -23, -15, -37, -10, -8, -8, -8, -7, -14, -10, -9, -12, -18, -5, -11, -11, -30,
                    -5, -11, -11, -30, -5, -11, -11, -30 } };
    public static int[][] cabac_context_init_PB_B = {
            { -15, 54, 74, -15, 54, 74, 127, 104, 53, 54, 51, 33, 2, 0, 9, 49, 118, 57, 78, 65, 62, 49, 73, 50, 64, 43,
                    0, 67, 90, 104, 127, 104, 67, 78, 65, 62, 86, 95, 61, 45, 69, 81, 96, 55, 67, 86, 88, 58, 76, 94,
                    54, 69, 81, 88, 67, 74, 74, 80, 72, 58, 41, 63, 63, 63, 83, 86, 97, 72, 41, 62, 45, 78, 96, 126,
                    98, 101, 67, 82, 94, 83, 110, 91, 102, 93, 127, 92, 89, 96, 108, 46, 65, 57, 93, 74, 92, 87, 126,
                    54, 60, 59, 69, 48, 68, 69, 88, 85, 78, 75, 77, 54, 50, 68, 50, 42, 81, 63, 70, 67, 57, 76, 35, 64,
                    61, 35, 25, 24, 29, 36, 93, 73, 73, 46, 49, 100, 53, 53, 53, 61, 56, 56, 63, 60, 62, 57, 69, 57,
                    39, 51, 68, 64, 61, 63, 50, 39, 44, 52, 48, 60, 59, 59, 33, 44, 43, 78, 60, 69, 28, 40, 44, 49, 46,
                    44, 51, 47, 39, 62, 46, 54, 54, 58, 63, 51, 57, 53, 52, 55, 45, 36, 53, 82, 55, 78, 46, 31, 84, 7,
                    -7, 3, 4, 0, -1, 6, 6, 9, 19, 27, 30, 20, 34, 70, 67, 59, 67, 30, 32, 35, 29, 31, 38, 43, 41, 63,
                    59, 64, 94, 89, 108, 76, 44, 45, 52, 64, 59, 70, 75, 82, 102, 77, 24, 42, 48, 55, 59, 71, 83, 87,
                    119, 58, 29, 36, 38, 43, 55, 58, 64, 74, 90, 70, 29, 31, 42, 59, 58, 72, 81, 97, 58, 5, 14, 18, 27,
                    40, 58, 70, 79, 85, 0, 106, 106, 87, 114, 110, 98, 110, 106, 103, 107, 108, 112, 96, 95, 91, 93,
                    94, 86, 67, 80, 85, 70, 60, 58, 61, 50, 50, 49, 54, 41, 46, 51, 49, 52, 41, 47, 55, 41, 44, 50, 53,
                    49, 63, 64, 69, 59, 70, 44, 31, 43, 53, 34, 38, 52, 40, 32, 44, 38, 50, 57, 43, 11, 14, 11, 11, 9,
                    -2, -15, -15, -21, -23, -33, -31, -28, -12, 29, -24, -45, -26, -43, -19, -10, 9, 26, 27, 57, 82,
                    75, 97, 125, 0, 0, -4, 6, 8, 10, 22, 19, 32, 31, 41, 44, 47, 65, 71, 60, 63, 65, 24, 20, 23, 32,
                    23, 24, 40, 32, 29, 42, 57, 53, 61, 86, 40, 51, 59, 79, 71, 69, 70, 66, 68, 73, 69, 70, 67, 62, 70,
                    66, 65, 63, -2, -9, -9, -7, -2, 3, 9, 27, 59, 66, 35, 42, 45, 48, 56, 60, 62, 66, 76, 85, 81, 77,
                    81, 80, 73, 74, 83, 71, 67, 61, 66, 66, 59, 59, -13, -14, -7, -2, 2, 6, 17, 34, 62, 92, 89, 96,
                    108, 46, 65, 57, 93, 74, 92, 87, 126, 92, 89, 96, 108, 46, 65, 57, 93, 74, 92, 87, 126, 85, 78, 75,
                    77, 54, 50, 68, 50, 42, 81, 63, 70, 67, 57, 76, 35, 64, 61, 35, 25, 24, 29, 36, 93, 73, 73, 46, 49,
                    100, 53, 53, 53, 61, 56, 56, 63, 60, 62, 57, 69, 57, 39, 51, 68, 85, 78, 75, 77, 54, 50, 68, 50,
                    42, 81, 63, 70, 67, 57, 76, 35, 64, 61, 35, 25, 24, 29, 36, 93, 73, 73, 46, 49, 100, 53, 53, 53,
                    61, 56, 56, 63, 60, 62, 57, 69, 57, 39, 51, 68, 28, 40, 44, 49, 46, 44, 51, 47, 39, 62, 46, 54, 54,
                    58, 63, 51, 57, 53, 52, 55, 45, 36, 53, 82, 55, 78, 46, 31, 84, 7, -7, 3, 4, 0, -1, 6, 6, 9, 19,
                    27, 30, 20, 34, 70, 28, 40, 44, 49, 46, 44, 51, 47, 39, 62, 46, 54, 54, 58, 63, 51, 57, 53, 52, 55,
                    45, 36, 53, 82, 55, 78, 46, 31, 84, 7, -7, 3, 4, 0, -1, 6, 6, 9, 19, 27, 30, 20, 34, 70, 79, 71,
                    69, 70, 66, 68, 73, 69, 70, 67, 62, 70, 66, 65, 63, 85, 81, 77, 81, 80, 73, 74, 83, 71, 67, 61, 66,
                    66, 59, 59, -2, -9, -9, -7, -2, 3, 9, 27, 59, -13, -14, -7, -2, 2, 6, 17, 34, 62, 66, 35, 42, 45,
                    48, 56, 60, 62, 66, 76, 79, 71, 69, 70, 66, 68, 73, 69, 70, 67, 62, 70, 66, 65, 63, 85, 81, 77, 81,
                    80, 73, 74, 83, 71, 67, 61, 66, 66, 59, 59, -2, -9, -9, -7, -2, 3, 9, 27, 59, -13, -14, -7, -2, 2,
                    6, 17, 34, 62, 66, 35, 42, 45, 48, 56, 60, 62, 66, 76, 106, 106, 87, 114, 110, 98, 110, 106, 103,
                    107, 108, 112, 96, 95, 91, 93, 94, 86, 67, 80, 85, 70, 60, 58, 61, 50, 50, 49, 54, 41, 46, 51, 49,
                    52, 41, 47, 55, 41, 44, 50, 53, 49, 63, 64, 106, 106, 87, 114, 110, 98, 110, 106, 103, 107, 108,
                    112, 96, 95, 91, 93, 94, 86, 67, 80, 85, 70, 60, 58, 61, 50, 50, 49, 54, 41, 46, 51, 49, 52, 41,
                    47, 55, 41, 44, 50, 53, 49, 63, 64, 11, 14, 11, 11, 9, -2, -15, -15, -21, -23, -33, -31, -28, -12,
                    29, -24, -45, -26, -43, -19, -10, 9, 26, 27, 57, 82, 75, 97, 125, 0, 0, -4, 6, 8, 10, 22, 19, 32,
                    31, 41, 44, 47, 65, 71, 11, 14, 11, 11, 9, -2, -15, -15, -21, -23, -33, -31, -28, -12, 29, -24,
                    -45, -26, -43, -19, -10, 9, 26, 27, 57, 82, 75, 97, 125, 0, 0, -4, 6, 8, 10, 22, 19, 32, 31, 41,
                    44, 47, 65, 71, 76, 44, 45, 52, 64, 59, 70, 75, 82, 102, 77, 24, 42, 48, 55, 59, 71, 83, 87, 119,
                    58, 29, 36, 38, 43, 55, 58, 64, 74, 90, 76, 44, 45, 52, 64, 59, 70, 75, 82, 102, 77, 24, 42, 48,
                    55, 59, 71, 83, 87, 119, 58, 29, 36, 38, 43, 55, 58, 64, 74, 90, 74, 92, 87, 126, 74, 92, 87, 126,
                    74, 92, 87, 126 },

            { -15, 54, 74, -15, 54, 74, 127, 104, 53, 54, 51, 25, 0, 0, 9, 41, 118, 65, 71, 79, 52, 50, 70, 54, 34, 22,
                    0, 2, 36, 69, 127, 101, 76, 71, 79, 52, 69, 90, 52, 43, 69, 82, 96, 59, 75, 87, 100, 56, 74, 85,
                    59, 81, 86, 95, 66, 77, 70, 86, 72, 61, 41, 63, 63, 63, 83, 86, 97, 72, 41, 62, 15, 51, 80, 127,
                    91, 96, 81, 98, 102, 97, 119, 99, 110, 102, 127, 80, 89, 94, 92, 39, 65, 84, 127, 73, 104, 91, 127,
                    55, 56, 55, 61, 53, 68, 74, 88, 103, 91, 89, 92, 76, 87, 110, 105, 78, 112, 99, 127, 127, 127, 127,
                    66, 78, 71, 72, 59, 55, 70, 75, 89, 119, 75, 20, 22, 127, 54, 61, 58, 60, 61, 67, 84, 74, 65, 52,
                    57, 61, 69, 70, 55, 71, 58, 61, 41, 25, 32, 43, 47, 44, 51, 46, 38, 66, 38, 42, 34, 89, 45, 28, 31,
                    -11, -43, 15, 0, -22, -25, 0, -18, -12, -94, 0, -15, -4, 10, -5, -29, -9, -34, -58, -63, -5, 7,
                    -29, 1, 0, 36, -25, -30, -28, -28, -27, -18, -16, -14, -8, -6, 0, 10, 18, 25, 41, 75, 72, 77, 35,
                    31, 35, 30, 45, 42, 45, 26, 54, 66, 56, 73, 67, 116, 112, 71, 61, 53, 66, 77, 80, 84, 87, 127, 101,
                    39, 53, 61, 75, 77, 91, 107, 111, 122, 76, 44, 52, 57, 58, 72, 69, 69, 74, 86, 66, 34, 32, 31, 52,
                    55, 67, 73, 89, 52, 4, 8, 8, 19, 37, 61, 73, 70, 78, 0, 126, 124, 110, 126, 124, 105, 121, 117,
                    102, 117, 116, 122, 95, 100, 95, 111, 114, 89, 80, 82, 85, 81, 72, 64, 67, 56, 69, 69, 69, 69, 67,
                    77, 64, 61, 67, 64, 57, 65, 66, 62, 51, 66, 71, 75, 70, 72, 60, 37, 47, 35, 37, 41, 41, 48, 41, 41,
                    59, 50, 40, 66, 50, -6, -6, 0, -12, -16, -25, -22, -28, -30, -30, -42, -36, -34, -17, 9, -71, -63,
                    -64, -74, -39, -35, -10, 0, -1, 14, 26, 37, 55, 65, -33, -36, -37, -30, -33, -30, -24, -29, -12,
                    -10, -3, -5, 20, 30, 44, 48, 49, 45, 22, 22, 21, 20, 28, 24, 34, 42, 39, 50, 70, 54, 71, 83, 32,
                    49, 54, 85, 81, 77, 81, 80, 73, 74, 83, 71, 67, 61, 66, 66, 59, 59, -10, -13, -9, -5, 0, 3, 10, 27,
                    57, 71, 24, 36, 42, 52, 57, 63, 65, 67, 82, 81, 76, 72, 78, 72, 68, 70, 76, 66, 62, 57, 61, 60, 54,
                    58, -10, -13, -9, -5, 0, 3, 10, 27, 57, 80, 89, 94, 92, 39, 65, 84, 127, 73, 104, 91, 127, 80, 89,
                    94, 92, 39, 65, 84, 127, 73, 104, 91, 127, 103, 91, 89, 92, 76, 87, 110, 105, 78, 112, 99, 127,
                    127, 127, 127, 66, 78, 71, 72, 59, 55, 70, 75, 89, 119, 75, 20, 22, 127, 54, 61, 58, 60, 61, 67,
                    84, 74, 65, 52, 57, 61, 69, 70, 55, 103, 91, 89, 92, 76, 87, 110, 105, 78, 112, 99, 127, 127, 127,
                    127, 66, 78, 71, 72, 59, 55, 70, 75, 89, 119, 75, 20, 22, 127, 54, 61, 58, 60, 61, 67, 84, 74, 65,
                    52, 57, 61, 69, 70, 55, 45, 28, 31, -11, -43, 15, 0, -22, -25, 0, -18, -12, -94, 0, -15, -4, 10,
                    -5, -29, -9, -34, -58, -63, -5, 7, -29, 1, 0, 36, -25, -30, -28, -28, -27, -18, -16, -14, -8, -6,
                    0, 10, 18, 25, 41, 45, 28, 31, -11, -43, 15, 0, -22, -25, 0, -18, -12, -94, 0, -15, -4, 10, -5,
                    -29, -9, -34, -58, -63, -5, 7, -29, 1, 0, 36, -25, -30, -28, -28, -27, -18, -16, -14, -8, -6, 0,
                    10, 18, 25, 41, 85, 81, 77, 81, 80, 73, 74, 83, 71, 67, 61, 66, 66, 59, 59, 81, 76, 72, 78, 72, 68,
                    70, 76, 66, 62, 57, 61, 60, 54, 58, -10, -13, -9, -5, 0, 3, 10, 27, 57, -10, -13, -9, -5, 0, 3, 10,
                    27, 57, 71, 24, 36, 42, 52, 57, 63, 65, 67, 82, 85, 81, 77, 81, 80, 73, 74, 83, 71, 67, 61, 66, 66,
                    59, 59, 81, 76, 72, 78, 72, 68, 70, 76, 66, 62, 57, 61, 60, 54, 58, -10, -13, -9, -5, 0, 3, 10, 27,
                    57, -10, -13, -9, -5, 0, 3, 10, 27, 57, 71, 24, 36, 42, 52, 57, 63, 65, 67, 82, 126, 124, 110, 126,
                    124, 105, 121, 117, 102, 117, 116, 122, 95, 100, 95, 111, 114, 89, 80, 82, 85, 81, 72, 64, 67, 56,
                    69, 69, 69, 69, 67, 77, 64, 61, 67, 64, 57, 65, 66, 62, 51, 66, 71, 75, 126, 124, 110, 126, 124,
                    105, 121, 117, 102, 117, 116, 122, 95, 100, 95, 111, 114, 89, 80, 82, 85, 81, 72, 64, 67, 56, 69,
                    69, 69, 69, 67, 77, 64, 61, 67, 64, 57, 65, 66, 62, 51, 66, 71, 75, -6, -6, 0, -12, -16, -25, -22,
                    -28, -30, -30, -42, -36, -34, -17, 9, -71, -63, -64, -74, -39, -35, -10, 0, -1, 14, 26, 37, 55, 65,
                    -33, -36, -37, -30, -33, -30, -24, -29, -12, -10, -3, -5, 20, 30, 44, -6, -6, 0, -12, -16, -25,
                    -22, -28, -30, -30, -42, -36, -34, -17, 9, -71, -63, -64, -74, -39, -35, -10, 0, -1, 14, 26, 37,
                    55, 65, -33, -36, -37, -30, -33, -30, -24, -29, -12, -10, -3, -5, 20, 30, 44, 112, 71, 61, 53, 66,
                    77, 80, 84, 87, 127, 101, 39, 53, 61, 75, 77, 91, 107, 111, 122, 76, 44, 52, 57, 58, 72, 69, 69,
                    74, 86, 112, 71, 61, 53, 66, 77, 80, 84, 87, 127, 101, 39, 53, 61, 75, 77, 91, 107, 111, 122, 76,
                    44, 52, 57, 58, 72, 69, 69, 74, 86, 73, 104, 91, 127, 73, 104, 91, 127, 73, 104, 91, 127 },

            { -15, 54, 74, -15, 54, 74, 127, 104, 53, 54, 51, 16, 0, 0, 51, 62, 99, 16, 85, 102, 57, 57, 73, 57, 40,
                    10, 0, 0, 42, 97, 127, 117, 74, 85, 102, 57, 93, 88, 44, 55, 89, 103, 116, 57, 58, 84, 96, 63, 85,
                    106, 63, 75, 90, 101, 55, 79, 75, 97, 50, 60, 41, 63, 63, 63, 83, 86, 97, 72, 41, 62, 34, 88, 127,
                    127, 91, 95, 84, 86, 89, 91, 127, 76, 103, 90, 127, 80, 76, 84, 78, 55, 61, 83, 127, 79, 104, 91,
                    127, 65, 79, 72, 92, 56, 68, 71, 98, 86, 88, 82, 72, 67, 72, 89, 69, 59, 66, 57, 71, 71, 58, 74,
                    44, 69, 62, 51, 47, 42, 41, 53, 76, 78, 83, 52, 67, 90, 67, 72, 75, 80, 83, 64, 31, 64, 94, 75, 63,
                    74, 35, 27, 91, 65, 69, 77, 66, 62, 68, 81, 30, 7, 23, 74, 66, 124, 37, -18, -34, 127, 39, 42, 34,
                    29, 31, 37, 42, 40, 33, 43, 36, 47, 55, 58, 60, 44, 44, 42, 48, 56, 52, 37, 49, 58, 48, 45, 69, 33,
                    63, -18, -25, -3, 10, 0, -14, -44, -24, 17, 25, 29, 33, 15, 20, 73, 34, 31, 44, 16, 36, 36, 28, 21,
                    20, 12, 16, 42, 93, 56, 57, 38, 127, 115, 82, 62, 53, 59, 85, 89, 94, 92, 127, 100, 57, 67, 71, 77,
                    85, 88, 104, 98, 127, 82, 48, 61, 66, 70, 75, 79, 83, 92, 108, 79, 69, 75, 58, 58, 78, 83, 81, 99,
                    81, 38, 62, 58, 59, 73, 76, 86, 83, 87, 0, 127, 127, 120, 127, 114, 117, 118, 117, 113, 118, 120,
                    124, 94, 102, 99, 106, 127, 92, 57, 86, 94, 91, 77, 71, 73, 64, 81, 64, 57, 67, 68, 67, 68, 77, 64,
                    68, 78, 55, 59, 65, 54, 44, 60, 70, 76, 86, 70, 64, 70, 55, 56, 69, 65, 74, 54, 54, 76, 82, 77, 77,
                    42, -13, -9, -12, -21, -30, -40, -41, -47, -32, -40, -51, -41, -39, -19, 11, -55, -46, -50, -67,
                    -20, -2, 15, 1, 1, 17, 38, 45, 54, 79, -16, -14, -17, 1, 15, 15, 25, 22, 16, 18, 28, 41, 28, 47,
                    62, 31, 26, 24, 23, 16, 30, 29, 41, 42, 60, 52, 60, 78, 123, 53, 56, 61, 33, 50, 61, 78, 74, 72,
                    72, 75, 71, 63, 70, 75, 72, 67, 53, 59, 52, 68, -2, -10, -4, -1, 7, 12, 23, 38, 64, 71, 37, 44, 49,
                    56, 59, 63, 67, 68, 79, 78, 74, 72, 72, 75, 71, 63, 70, 75, 72, 67, 53, 59, 52, 68, -2, -10, -4,
                    -1, 7, 12, 23, 38, 64, 80, 76, 84, 78, 55, 61, 83, 127, 79, 104, 91, 127, 80, 76, 84, 78, 55, 61,
                    83, 127, 79, 104, 91, 127, 86, 88, 82, 72, 67, 72, 89, 69, 59, 66, 57, 71, 71, 58, 74, 44, 69, 62,
                    51, 47, 42, 41, 53, 76, 78, 83, 52, 67, 90, 67, 72, 75, 80, 83, 64, 31, 64, 94, 75, 63, 74, 35, 27,
                    91, 86, 88, 82, 72, 67, 72, 89, 69, 59, 66, 57, 71, 71, 58, 74, 44, 69, 62, 51, 47, 42, 41, 53, 76,
                    78, 83, 52, 67, 90, 67, 72, 75, 80, 83, 64, 31, 64, 94, 75, 63, 74, 35, 27, 91, 39, 42, 34, 29, 31,
                    37, 42, 40, 33, 43, 36, 47, 55, 58, 60, 44, 44, 42, 48, 56, 52, 37, 49, 58, 48, 45, 69, 33, 63,
                    -18, -25, -3, 10, 0, -14, -44, -24, 17, 25, 29, 33, 15, 20, 73, 39, 42, 34, 29, 31, 37, 42, 40, 33,
                    43, 36, 47, 55, 58, 60, 44, 44, 42, 48, 56, 52, 37, 49, 58, 48, 45, 69, 33, 63, -18, -25, -3, 10,
                    0, -14, -44, -24, 17, 25, 29, 33, 15, 20, 73, 78, 74, 72, 72, 75, 71, 63, 70, 75, 72, 67, 53, 59,
                    52, 68, 78, 74, 72, 72, 75, 71, 63, 70, 75, 72, 67, 53, 59, 52, 68, -2, -10, -4, -1, 7, 12, 23, 38,
                    64, -2, -10, -4, -1, 7, 12, 23, 38, 64, 71, 37, 44, 49, 56, 59, 63, 67, 68, 79, 78, 74, 72, 72, 75,
                    71, 63, 70, 75, 72, 67, 53, 59, 52, 68, 78, 74, 72, 72, 75, 71, 63, 70, 75, 72, 67, 53, 59, 52, 68,
                    -2, -10, -4, -1, 7, 12, 23, 38, 64, -2, -10, -4, -1, 7, 12, 23, 38, 64, 71, 37, 44, 49, 56, 59, 63,
                    67, 68, 79, 127, 127, 120, 127, 114, 117, 118, 117, 113, 118, 120, 124, 94, 102, 99, 106, 127, 92,
                    57, 86, 94, 91, 77, 71, 73, 64, 81, 64, 57, 67, 68, 67, 68, 77, 64, 68, 78, 55, 59, 65, 54, 44, 60,
                    70, 127, 127, 120, 127, 114, 117, 118, 117, 113, 118, 120, 124, 94, 102, 99, 106, 127, 92, 57, 86,
                    94, 91, 77, 71, 73, 64, 81, 64, 57, 67, 68, 67, 68, 77, 64, 68, 78, 55, 59, 65, 54, 44, 60, 70,
                    -13, -9, -12, -21, -30, -40, -41, -47, -32, -40, -51, -41, -39, -19, 11, -55, -46, -50, -67, -20,
                    -2, 15, 1, 1, 17, 38, 45, 54, 79, -16, -14, -17, 1, 15, 15, 25, 22, 16, 18, 28, 41, 28, 47, 62,
                    -13, -9, -12, -21, -30, -40, -41, -47, -32, -40, -51, -41, -39, -19, 11, -55, -46, -50, -67, -20,
                    -2, 15, 1, 1, 17, 38, 45, 54, 79, -16, -14, -17, 1, 15, 15, 25, 22, 16, 18, 28, 41, 28, 47, 62,
                    115, 82, 62, 53, 59, 85, 89, 94, 92, 127, 100, 57, 67, 71, 77, 85, 88, 104, 98, 127, 82, 48, 61,
                    66, 70, 75, 79, 83, 92, 108, 115, 82, 62, 53, 59, 85, 89, 94, 92, 127, 100, 57, 67, 71, 77, 85, 88,
                    104, 98, 127, 82, 48, 61, 66, 70, 75, 79, 83, 92, 108, 79, 104, 91, 127, 79, 104, 91, 127, 79, 104,
                    91, 127 } };
}
